<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>更新页面</title>
    <link rel="stylesheet" href="/app/admin/component/pear/css/pear.css"/>
    <link rel="stylesheet" href="/app/admin/component/jsoneditor/css/jsoneditor.css"/>
    <link rel="stylesheet" href="/app/admin/admin/css/reset.css"/>

</head>
<body>

<form class="layui-form">

    <div class="mainBox">
        <div class="main-container mr-5">

            <div class="layui-form-item">
                <label class="layui-form-label required">分类</label>
                <div class="layui-input-block">
                    <div name="category_id" id="category_id" required value=""></div>
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">卡号</label>
                <div class="layui-input-block">
                    <input type="text" disabled name="card" value="" required lay-verify="required" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label">开始时间</label>
                <div class="layui-input-block">
                    <input type="text" name="start_time" id="start_time" autocomplete="off" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label">结束时间</label>
                <div class="layui-input-block">
                    <input type="text" name="end_time" id="end_time" autocomplete="off" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label">备注</label>
                <div class="layui-input-block">
                    <input type="text" name="remark" value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label">状态</label>
                <div class="layui-input-block">
                    <input type="checkbox" id="status" lay-filter="status" lay-skin="switch" lay-text="开启|关闭"/>
                    <input type="text" style="display:none" name="status" value="1"/>
                </div>
            </div>

        </div>
    </div>

    <div class="bottom">
        <div class="button-container">
            <button type="submit" class="pear-btn pear-btn-primary pear-btn-md" lay-submit="" lay-filter="save">
                提交
            </button>
            <button type="reset" class="pear-btn pear-btn-md">
                重置
            </button>
        </div>
    </div>

</form>

<script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/component/jsoneditor/jsoneditor.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>

<script>
    function generateRandomString(length) {
        const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        return Array.from({length}, () => characters[Math.floor(Math.random() * characters.length)]).join('');
    }

    // 示例：生成一个长度为10的随机字符串
    // console.log(generateRandomString(10));
    // 相关接口
    const PRIMARY_KEY = "id";
    const SELECT_API = "/admin/app/card/select" + location.search;
    const UPDATE_API = "/admin/app/card/update";

    // 获取数据库记录
    layui.use(["form", "util", "popup"], function () {
        let $ = layui.$;
        $('#random').on('click', function () {
            $('[name="card"]').val(generateRandomString(8));
        })
        $.ajax({
            url: SELECT_API,
            dataType: "json",
            success: function (res) {

                // 给表单初始化数据
                layui.each(res.data[0], function (key, value) {
                    let obj = $('*[name="' + key + '"]');
                    if (key === "password") {
                        obj.attr("placeholder", "不更新密码请留空");
                        return;
                    }
                    if (typeof obj[0] === "undefined" || !obj[0].nodeName) return;
                    if (obj[0].nodeName.toLowerCase() === "textarea") {
                        obj.val(value);
                    } else {
                        obj.attr("value", value);
                        obj[0].value = value;
                    }
                });

                // 字段 开始时间 start_time
                layui.use(["laydate"], function () {
                    layui.laydate.render({
                        elem: "#start_time",
                        type: "datetime",
                    });
                })

                // 字段 结束时间 end_time
                layui.use(["laydate"], function () {
                    layui.laydate.render({
                        elem: "#end_time",
                        type: "datetime",
                    });
                })

                // 字段 状态 status
                layui.use(["form"], function () {
                    layui.$("#status").attr("checked", layui.$('input[name="status"]').val() != 0);
                    layui.form.render();
                    layui.form.on("switch(status)", function (data) {
                        layui.$('input[name="status"]').val(this.checked ? 1 : 0);
                    });
                })

                // 字段 分类 category_id
                layui.use(["jquery", "xmSelect", "popup"], function () {
                    layui.$.ajax({
                        url: "/admin/app/category/select?format=select&field=name&limit=1000",
                        dataType: "json",
                        success: function (res) {
                            let value = layui.$("#category_id").attr("value");
                            let initValue = value ? value.split(",") : [];
                            layui.xmSelect.render({
                                el: "#category_id",
                                name: "category_id",
                                initValue: initValue,
                                filterable: true,
                                data: res.data,
                                model: {"icon": "hidden", "label": {"type": "text"}},
                                clickClose: true,
                                radio: true,
                            });
                            if (res.code) {
                                layui.popup.failure(res.msg);
                            }
                        }
                    });
                });


                // ajax返回失败
                if (res.code) {
                    layui.popup.failure(res.msg);
                }

            }
        });
    });

    //提交事件
    layui.use(["form", "popup"], function () {
        // 字段验证允许为空
        layui.form.verify({
            phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"],
            email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"],
            url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"],
            number: [/(^$)|^\d+$/, '只能填写数字'],
            date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"],
            identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"]
        });
        layui.form.on("submit(save)", function (data) {
            data.field[PRIMARY_KEY] = layui.url().search[PRIMARY_KEY];
            layui.$.ajax({
                url: UPDATE_API,
                type: "POST",
                dateType: "json",
                data: data.field,
                success: function (res) {
                    if (res.code) {
                        return layui.popup.failure(res.msg);
                    }
                    return layui.popup.success("操作成功", function () {
                        parent.refreshTable();
                        parent.layer.close(parent.layer.getFrameIndex(window.name));
                    });
                }
            });
            return false;
        });
    });

</script>

</body>

</html>
